% Dokumentenklasse 'scrartcl' für Artikel
% Andere Beispiele: 'scrbook' für Buch und 'scrrprt' für Report (KOMA-Script)
\documentclass[pdftex, a4paper]{scrartcl}

%
% 'ngerman' ist für die Übersetzung ins Deutsche, z.B. für das Inhaltsverzeichnis
%
%\usepackage{ngerman}

%
% Deutsche BibTex Einträge
%
%\usepackage{bibgerm}

%
% 'inputenc [utf8]' bindet Umlaute und Sonderzeichen ein wie ÄÖÜäöü etc.
%
\usepackage[utf8]{inputenc}

%
% 'fontenc [T1]' bindet Erweiterte Buchstaben ein die aus <<a>> und <<^>> direkt <<â>> machen
%
\usepackage[T1]{fontenc}

%
% um Graphiken zu benutzen folgendes Package einbinden
%
\usepackage{graphicx}
\usepackage{float}

%
% Tabularx um Tabellen zu erzeugen
%
\usepackage{tabularx}

%
% um Mathematische Formeln der Amerikanischen Mathematischen Society zu nutzen folgenden einbinden
%
\usepackage{amsmath, amsthm, amssymb}
\usepackage{mathtools}
% Lightning symbol
\usepackage{stmaryrd}


%
% um einheitliche 'quote-Zeichen' zu erhalten folgende Pakete verwenden
%
\usepackage[english]{babel}
\usepackage[babel, english=american]{csquotes}

%
%  Packet für die Index-Erstellung laden.
%
% \usepackage{makeidx}

%
% Zed Notation
%
\usepackage{zed-csp}
%
% Paket für spezielle PDF features.
%
\usepackage[%
	pdftitle={Advanced Formal Modeling - Lectures and Exercises},%                  	Titel des PDF Dokuments.
	pdfauthor={Robin Müller-Bady},%              								Autor des PDF Dokuments.
	pdfsubject={Lectures and Exercises},%                 							Thema des PDF Dokuments.
	pdfcreator={Kile},%															Erzeuger des PDF Dokuments.
	pdfpagemode=UseOutlines,%                               					Inhaltsverzeichnis anzeigen beim Öffnen
	pdfdisplaydoctitle=true,%                               					Dokumenttitel statt Dateiname anzeigen.
	pdflang=de%                                             					Sprache des Dokuments.
]{hyperref}

\usepackage{pdfpages}
%
% um Quellcode anzeigen zu können folgendes Paket verwenden
% + workaround fuer das Listingsverzeichnis am Ende der Datei
%
\usepackage{listings}

\makeatletter% --> De-TeX-FAQ
\renewcommand*{\lstlistoflistings}{%
  \begingroup
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \lol@heading
    \setlength{\parskip}{\z@}%
    \setlength{\parindent}{\z@}%
    \setlength{\parfillskip}{\z@ \@plus 1fil}%
    \@starttoc{lol}%
    \if@restonecol\twocolumn\fi
  \endgroup
}
\makeatother% --> \makeatletter

%
% Einstellungen
%

%
% Titel der Seiten als Kop nehmen
%
% \pagestyle{headings}

%
% Farben definieren
%
\usepackage{color}
\definecolor{LinkColor}{rgb}{0,0,0.5}
\definecolor{ListingBackground}{rgb}{0.85,0.85,0.85}
\definecolor{JavaCommentcolor}{rgb}{0.44, 0.63, 0.53}
\definecolor{JavaKeywordcolor}{rgb}{0.51, 0.02, 0.35}
\definecolor{JavaStringcolor}{rgb}{0.05, 0.0, 1.0}

%
%  Farbeinstellungen für die Links im PDF Dokument.
%
\hypersetup{%
	colorlinks=true,%        Aktivieren von farbigen Links im Dokument (keine Rahmen)
	linkcolor=LinkColor,%    Farbe festlegen.
	citecolor=LinkColor,%    Farbe festlegen.
	filecolor=LinkColor,%    Farbe festlegen.
	menucolor=LinkColor,%    Farbe festlegen.
	urlcolor=LinkColor,%     Farbe von URL's im Dokument.
	bookmarksnumbered=true%  Überschriftsnummerierung im PDF Inhalt anzeigen.
}

%
% Einstellungen von listings
%

\lstset{
	language=Java,     	     							% Sprache des Quellcodes ist Java (standard)
	numbers=left,            							% Zelennummern links
	stepnumber=1,            							% Jede Zeile nummerieren.
	numbersep=5pt,           							% 5pt Abstand zum Quellcode
	numberstyle=\tiny,									% Zeichengrösse 'tiny' für die Nummern.
	breaklines=true,        							% Zeilen umbrechen wenn notwendig.
	keywordstyle=\bfseries\color{JavaKeywordcolor}, 	% Keywords wie 'for' / 'import' in diesem Stil highlighten
	commentstyle=\itshape\color{JavaCommentcolor}, 		% Kommentare in diesem Stil highlighten
	stringstyle=\color{JavaStringcolor}, 				% Strings in diesem Stil highlighten
	breakautoindent=false,    							% Nach dem Zeilenumbruch Zeile einrücken.
	postbreak=\space,        							% Bei Leerzeichen umbrechen.
	tabsize=2,               							% Tabulatorgrösse 2
	basicstyle=\ttfamily\scriptsize, 							% Nichtproportionale Schrift, klein für den Quellcode
	showspaces=false,        							% Leerzeichen nicht anzeigen.
	showstringspaces=false,  							% Leerzeichen auch in Strings ('') nicht anzeigen.
	extendedchars=true,      							% Alle Zeichen vom Latin1 Zeichensatz anzeigen.
	backgroundcolor=\color{ListingBackground}} 			% Hintergrundfarbe des Quellcodes setzen.

%
% Header erzeugen
%

\usepackage[automark]{scrpage2}
\pagestyle{scrheadings}
\setheadsepline{.4pt}
\setfootsepline{.4pt}
% \ohead{Advanced Formal Modeling}
\ofoot{Robin Müller-Bady}

%
% Listengröße
%
\newcommand{\listengroesse}{\footnotesize}

%
% Markup Befehl (Unterstreichen)
%
\usepackage[normalem]{ulem}
\newcommand{\markup}[1]{\uline{#1}}

%
% Nomenklatur
% Befehlszeile: makeindex [filename].nlo -s nomencl.ist -o [filename].nls
% Usage: \nomenclature{VoIP}{\markup{V}oice \markup{o}ver \markup{I}nternet \markup{P}rotocol}
% \nomenclature{}{\markup{} \markup{} \markup{} \markup{}}
%
% \usepackage[english]{nomencl}
%
% \setlength{\nomlabelwidth}{.20\hsize}
% \setlength{\nomitemsep}{-\parsep}
% \renewcommand{\nomlabel}[1]{#1 \dotfill}
%
% \makenomenclature

%
% Index erzeugen
%
% \makeindex